   9 :RETURN ;S=1900;CLEAR ;NT=0
  10 BC=RND (32)×8;FC=BC+4+RND (32)×8;INPUT "MONTH?"M;INPUT "YEAR?"Y
  40 IF Y>SIF Y<S+88GOTO 50
  43 IF Y<S S=S-28;GOTO 40
  46 IF Y>S+88S=S+28;GOTO 40
  50 A=580;B=M
  70 B=B-1;A=A+30;IF B=0GOTO 100
  90 GOTO 70
 100 B=Y;C=Y;H=0
 103 C=C-100;IF C>0H=H+1;GOTO 103
 105 C=19-H;IF C<0C=C+1
 108 K=Y;GOSUB 2000;B=B-S;L=B÷4;D=B×365+L;P=B-L×4;IF J=1F=28;R=0;GOTO 170
 150 IF P=0F=29;R=1
 160 IF P#0F=28;R=0
 170 N=0;G=950;E=M
 190 E=E-1;IF E=0GOTO 240
 210 G=G+20;GOSUB G;GOTO 190
 240 D=D+N-R;B=D÷7;G=D-B×7;G=G+2-J+C;IF G>7G=G-7
 285 IF G<1G=G+7
 290 FOR X=1TO 38;@(X)=0;NEXT X;V=0;CLEAR ;GOSUB A
 350 PRINT Y;PRINT ;PRINT " S   M   T   W   T   F   S";PRINT 
 390 FOR X=GTO (G+C)-1;V=V+1;@(X)=V;NEXT X;W=1;Z=2
 440 FOR X=1TO 38;IF @(X)=0Z=Z+4
 460 IF @(X)=0GOTO 510
 470 IF @(X)<10IF W=1Z=2
 480 IF @(X)>9IF W=1Z=1
 490 IF W=1GOSUB 560
 500 IF W>1IF Z<3GOSUB 590
 505 IF W>1IF Z>2GOSUB 560
 510 W=W+1;IF W=8W=1
 530 NEXT X
 540 PRINT 
 550 GOTO 10
 560 PRINT #Z,@(X),
 570 Z=1
 580 RETURN 
 590 PRINT #4,@(X),
 600 RETURN 
 610 PRINT "   JANUARY   ",;C=31;RETURN 
 640 PRINT "   FEBRUARY  ",;C=F;RETURN 
 670 PRINT "   MARCH   ",;C=31;RETURN 
 700 PRINT "   APRIL   ",;C=30;RETURN 
 730 PRINT "   MAY   ",;C=31;RETURN 
 760 PRINT "   JUNE   ",;C=30;RETURN 
 790 PRINT "   JULY   ",;C=31;RETURN 
 820 PRINT "   AUGUST  ",;C=31;RETURN 
 850 PRINT "  SEPTEMBER  ",;C=30;RETURN 
 880 PRINT "  OCTOBER  ",;C=31;RETURN 
 910 PRINT "  NOVEMBER  ",;C=30;RETURN 
 940 PRINT "  DECEMBER  ",;C=31;RETURN 
 970 N=N+31;RETURN 
 990 N=N+F;RETURN 
1010 N=N+31;RETURN 
1030 N=N+30;RETURN 
1050 N=N+31;RETURN 
1070 N=N+30;RETURN 
1090 N=N+31;RETURN 
1110 N=N+31;RETURN 
1130 N=N+30;RETURN 
1150 N=N+31;RETURN 
1170 N=N+30;RETURN 
2000 N=K÷100;I=K-N×100;IF I#0J=0;RETURN 
2030 I=N÷4;K=N-I×4;IF K#0J=1;RETURN 
2060 J=0;RETURN 
RUN 
